home *** CD-ROM | disk | FTP | other *** search
- 100 REM F. COVITZ
- 110 PRINT"[147]":DEFFNA(L)=2^(L-1):E=106:I=RND(-TI):POKE53280,.:POKE53281,.
- 120 DIMS(7),C%(E),T$(4,5),PL(1,3),H(1,7),T1%(4),T2%(4,5),TB(1)
- 140 DATA"OUT OF GAS","FLAT TIRE",ACCIDENT,"SPEED LIMIT(50)",STOP
- 150 DATAGAS,"SPARE TIRE",REPAIRS,"END SPEED LIMIT",ROLL,"EXTRA TANK"
- 160 DATA"PERMANENT TIRE","DRIVING ACE",R,RIGHT-OF-WAY,200,100,75,50,25
- 180 FORI=1TO4:FORJ=1TO5:READT$(I,J):NEXTJ,I
- 200 DATA18,56,60,106,4,7,10,14,19,25,31,37,43,57,58,59,60,60,61,65,77,87,97,107
- 210 B$=" "
- 250 FORI=1TO4:READT1%(I):NEXTI:FORI=1TO4:FORJ=1TO5:READT2%(I,J):NEXTJ,I
- 280 G=0:FORI=1TOE:C%(I)=I:NEXTI:S(0)=0:S(1)=0
- 290 PRINT"SHUFFLING...":GOSUB790:GOSUB870
- 300 FORI=0TO1:FORJ=0TO3:PL(I,J)=0:NEXTJ:TB(I)=9:NEXTI
- 310 FORI=0TO1:FORJ=1TO6:CN=CN+1:H(I,J)=C%(CN):NEXTJ,I
- 330 PRINT"":FORA=1TO6:C=H(1,A):GOSUB830:PRINTTAB(3);N$:NEXTA
- 350 P=1:CN=CN+1:IFCN>ETHENS=S+1:IFS>6THENN$="NOBODY":GOTO1770
- 360 IFS>0THEN400
- 370 C=C%(CN):H(1,0)=C:GOSUB830:PRINT"";
- 380 PRINTTAB(3)LEFT$(B$,13)
- 390 PRINT"[145]";TAB(3);N$
- 400 PRINT"YOUR MOVE[146]"LEFT$(B$,30)
- 405 IF(PL(0,3)AND8)ANDPL(0,2)>-1THENPL(0,2)=5:J=22:GOSUB2120:PRINTTAB(9);"ROLL "
- 410 PRINT" PLAY(P) OR DISCARD(D) WHICH CARD? [157][157]";
- 415 GETN$:IFN$>""GOTO415
- 420 GETN$:IFN$<>"D"ANDN$<>"P"ANDN$<>" "THENGOSUB3000:GOTO420
- 425 PRINTN$;:IFN$=" "THENN$="D":N=S:PRINT"[157]D"MID$(STR$(S+1),2):GOTO470
- 430 GETQ$:IFQ$=CHR$(20)GOTO410
- 435 N=VAL(Q$)-1:IFN>6ORN<STHENGOSUB3000:GOTO430
- 440 PRINTQ$;
- 450 GETQ$:IFQ$=""THENGOSUB3000:GOTO450
- 460 IFQ$<>CHR$(13)THENPRINT"[157] [157]";:GOTO430
- 470 PRINT:IFN$="D"THENGOSUB970:GOSUB950:GOTO500
- 480 GOSUB930
- 490 IFCH=0THENINPUT",OK Y[157][157][157]";N$:GOTO400
- 500 PRINT"":FORA=0TO3+S:PRINT"";:NEXTA:PRINTTAB(3)LEFT$(B$,18)
- 520 IFPL(1,0)=1000THENN$="YOU":GOTO1770
- 530 D$="PLAY"
- 540 PRINT"":FORI=1TO39:PRINT" ";:NEXTI
- 550 PRINT"THINKING....":P=0:CN=CN+1
- 555 IF(PL(1,3)AND8)ANDPL(1,2)>-1THENPL(1,2)=5:J=16:GOSUB2120:PRINTTAB(9);"ROLL "
- 560 IFS=0THENH(0,0)=C%(CN)
- 570 HZ=PL(0,2):IFHZ>-1ANDPL(0,1)>-1THEN650
- 580 GOSUB1520:IFCFTHENPL(0,3)=PL(0,3)+FNA(M):PL(0,CF)=M:S(2)=S(2)+300
- 600 IFCFTHENS(4)=S(4)+100:GOTO770
- 610 IFSORPL(1,0)>790ORPL(0,0)>790THENGOSUB1730:IFSFTHEN770
- 620 GOSUB1480:IFCHTHENPL(0,CH)=M:GOTO770
- 630 IFPL(0,2)>-1THEN650
- 640 GOTO730
- 650 IFPL(0,2)<5THEN720
- 660 LM=201:IFPL(0,1)<0THENLM=51
- 670 IFLM<200ANDPL(0,0)<900THENGOSUB1450:IFCHTHENPL(0,1)=4:GOTO770
- 680 CH=0:D=0:FORA=STO6:C=H(0,A):GOSUB830:B=VAL(N$)
- 690 IFB<LMAND(B+PL(0,0)<1001)ANDB>DTHEND=B:N=A:CH=1
- 700 NEXTA:IFCHTHENPL(0,0)=PL(0,0)+D:GOTO770
- 710 GOTO730
- 720 GOSUB1580:IFCHAND(PL(0,2)>-1)THENPL(0,2)=5:GOTO770
- 730 IFPL(1,2)<0ANDPL(1,1)<0THEN760
- 740 GOSUB1380:IFCH=1ANDPL(1,0)<950THENPL(1,1)=-4:GOTO770
- 750 IFCH=2ANDPL(1,2)=5THENPL(1,2)=-M:GOTO770
- 760 GOSUB1600
- 770 GOSUB1830:IFPL(0,0)=1000THENN$="I":GOTO1770
- 780 GOSUB2130:GOTO350
- 790 CN=0:EN=E+1:S=0
- 800 FORI=2TO5:S(I)=0:NEXTI
- 810 FORI=1TOE:R%=I+(EN-I)*RND(TI):T=C%(I):C%(I)=C%(R%):C%(R%)=T
- 820 NEXTI:RETURN
- 830 FORI=1TO4:FORJ=1TO5
- 840 IFC>T1%(I)THENJ=5:GOTO860
- 850 IFC<T2%(I,J)THENN$=T$(I,J):K=I:L=J:I=4:J=5
- 860 NEXTJ,I:RETURN
- 870 PRINT"[147] YOUR HAND [146]";SPC(13);"DISCARD[146]"
- 880 FORI=0TO6:PRINTI+1:NEXTI:PRINT:PRINT"YOUR PILE"
- 890 PRINT"DISTANCE[141]SPEED [141]BATTLE [141]SAFETY "
- 900 PRINT:PRINT"MY PILE"
- 910 PRINT"DISTANCE[141]SPEED [141]BATTLE [141]SAFETY "
- 920 PRINT"";:RETURN
- 930 C=H(1,N):GOSUB830:GOSUB1010:P=1
- 940 IFCH=0THENPRINT""MS$;:RETURN
- 950 GOSUB1000:J=N+5+6*(1-P):GOSUB2120:PRINTTAB(3)LEFT$(B$,20)
- 960 PRINT"[145]"TAB(3):C=H(P,N):GOSUB830:PRINTN$:RETURN
- 970 C=H(P,N):GOSUB830
- 980 PRINT""TAB(23)N$LEFT$(B$,16-LEN(N$)):PRINT"":RETURN
- 1000 H(P,N)=H(P,S):RETURN
- 1010 P=1:MS$="":ONKGOTO1090,1170,1290,1020
- 1020 D=VAL(N$):IFPL(1,0)+D>1000THENMS$="YOU HAVE EXCEEDED 1000"
- 1030 IFPL(1,1)=-4ANDD>50THENMS$="YOU HAVE A "+T$(1,4)
- 1040 IFPL(1,2)<5THENMS$="YOU DON'T HAVE A ROLL CARD"
- 1050 IFPL(1,2)<0THENMS$="YOU HAVE A HAZARD"
- 1060 IFMS$<>""THENCH=0:RETURN
- 1070 PL(1,0)=PL(1,0)+D:CH=1
- 1080 N$=STR$(PL(1,0)):J=14:GOTO1270
- 1090 IFL<>4ANDPL(0,2)<5THENMS$="I DON'T HAVE A ROLL CARD"
- 1100 IFL<>4ANDPL(0,2)<0THENMS$="I ALREADY HAVE A HAZARD"
- 1110 IFL=4ANDPL(0,1)<0THENMS$="I HAVE A SPEED LIMIT"
- 1120 IFL=4AND(PL(0,3)AND16)THENMS$="I HAVE "+T$(3,5)
- 1130 IFPL(0,3)ANDFNA(L)THENMS$="HA!-I HAVE THE SAFETY"
- 1140 IFMS$<>""THENCH=0:RETURN
- 1150 IFL<>4THENPL(0,2)=-L:J=22:GOTO1270
- 1160 CH=1:PL(0,1)=-4:J=21:GOTO1270
- 1170 IFL<>5THEN1220
- 1180 IFPL(1,2)=5THENMS$="YOU HAVE A ROLL CARD"
- 1190 IFPL(1,2)<0THENMS$="YOU HAVE A HAZARD":IFPL(1,2)=-5THENMS$=""
- 1200 IFMS$<>""THENCH=0:RETURN
- 1210 PL(1,2)=5:GOTO1260
- 1220 IFL=4ANDPL(1,1)=-4THENPL(P,1)=4:J=15:GOTO1270
- 1230 IFPL(1,2)<>-LTHENMS$="YOU DON'T NEED TO DO THAT"
- 1240 IFMS$<>""THENCH=0:RETURN
- 1250 PL(P,2)=L
- 1260 J=16
- 1270 GOSUB2120:PRINTTAB(9)N$" "
- 1280 CH=1:RETURN
- 1290 P=1:CF=0:IFPL(1,2)=-LTHENPL(1,2)=L:CF=1
- 1300 IFL=5ANDPL(1,1)<0THENCF=1
- 1310 S(5)=S(5)+100:PL(1,3)=PL(1,3)+FNA(L)
- 1320 IFCFTHENPRINT"COUP FOUREE":S(3)=S(3)+300:GOSUB2130
- 1330 IFL=5THENPL(P,3)=PL(P,3)+8:PL(P,1)=4:J=21-6*P:GOSUB2120:PRINTTAB(9)T$(2,4)
- 1340 J=23-6*P:GOSUB2120:PRINTTAB(TB(P))""N$""
- 1350 TB(P)=TB(P)+15:IFTB(P)>30ANDTB(P)<49THENTB(P)=49
- 1360 IFCFANDPL(P,2)=LTHENJ=22-6*P:GOSUB2120:PRINTTAB(9)T$(2,L)" "
- 1370 CF=0:CH=1:RETURN
- 1380 CH=0:FORA=STO6:C=H(0,A):GOSUB830
- 1390 IFK<>1THEN1440
- 1400 IFL=4ANDPL(1,1)>-1THENCH=1:M=L:N=A
- 1410 IFL<>4ANDPL(1,2)>0THENCH=2:M=L:N=A
- 1420 IFFNA(L)ANDPL(1,3)THENCH=0
- 1430 IFCHTHENA=6
- 1440 NEXTA:RETURN
- 1450 CH=0:FORA=STO6:C=H(0,A):GOSUB830:IFK=2ANDL=4THENCH=1:N=A:A=6
- 1470 NEXTA:RETURN
- 1480 CH=0:FORA=STO6:C=H(0,A):GOSUB830
- 1490 IFK=2ANDL=-HZTHENCH=2:M=L:N=A:A=6:GOTO1510
- 1500 IFK=2ANDL=4ANDPL(0,1)=-4THENCH=1:M=L:N=A
- 1510 NEXTA:RETURN
- 1520 SF=0:CF=0:FORA=STO6:C=H(0,A):GOSUB830:IFK<>3THEN1570
- 1530 IFPL(0,1)<0ANDL=5THENCF=1
- 1540 SF=SF-8*(L=5)+FNA(L):M=L:N=A:IFL=-HZTHENCF=2
- 1560 IFCFTHENA=6
- 1570 NEXTA:RETURN
- 1580 CH=0:FORA=STO6:C=H(0,A):GOSUB830:IFK=2ANDL=5THENCH=1:N=A:A=6
- 1590 NEXTA:RETURN
- 1600 D$="DISCARD":FORA=STO6:C=H(0,A):GOSUB830
- 1610 IFK=1AND(PL(1,3)ANDFNA(L))THEN1760
- 1620 IFK=1ANDL=4ANDPL(1,0)>949THEN1760
- 1630 IFK=2AND(FNA(L)AND(PL(0,3)ORSF))THEN1760
- 1640 IFK=4ANDVAL(N$)>(1000-PL(0,0))THEN1760
- 1650 NEXTA
- 1660 FORA=STO6:C=H(0,A):GOSUB830
- 1670 IFK=4ANDVAL(N$)ANDVAL(N$)<76THEN1760
- 1680 NEXTA
- 1690 FORA=STO6:C=H(0,A):GOSUB830
- 1700 IFK=1AND(FNA(L)AND(PL(0,3)ORSF)=0)THEN1760
- 1710 IFK=2ANDL<5AND(PL(1,3)ANDFNA(L)=0)THEN1760
- 1720 NEXTA
- 1730 GOSUB1520
- 1740 IFSFTHENPL(0,3)=PL(0,3)+FNA(M):D$="PLAY[146]":S(4)=S(4)+100:RETURN
- 1750 N=INT((7-S)*RND(1))+S:IFSTHENRETURN:C=H(0,N):GOSUB830:IFVAL(N$)>100GOTO1750
- 1755 RETURN
- 1760 N=A:A=6:NEXTA:RETURN
- 1770 PRINT" "N$" REACHED 1000 MILES!!...":PRINTB$
- 1780 INPUT"[145]NEXT ROUND Y[157][157][157]";N$
- 1790 GOSUB1950:IFG>4ORLEFT$(N$,1)="N"THENPRINT"GAME OVER":GOTO1810
- 1800 INPUT"OK Y[157][157][157]";N$:GOTO290
- 1810 INPUT"NEW GAME Y[157][157][157]";N$:IFN$="Y"THENRUN
- 1820 END
- 1830 P=0:C=H(0,N):GOSUB830
- 1840 PRINT"MY "D$"[146] IS "N$;:FORI=1TO32-LEN(D$+N$):PRINT" ";:NEXTI
- 1850 PRINT:P=0
- 1860 IFLEN(D$)>6THENGOSUB980:GOSUB1000:RETURN
- 1870 IFCFTHENPRINT"COUP FOUREE"
- 1880 PRINT"":IFK=4THENN$=STR$(PL(0,0)):J=20
- 1890 CH=0:IFK=3THENJ=23:CH=1
- 1900 IFK=2THENJ=22:IFL=4THENJ=21
- 1910 IFK=1THENJ=16:IFL=4THENJ=15
- 1920 GOSUB2120:PRINTTAB(9);
- 1930 IFCHTHENGOSUB1330:GOSUB1000:RETURN
- 1940 PRINTN$" ":GOSUB1000:RETURN
- 1950 G=G+1:PRINT"[147]SCORES FOR ROUND"G
- 1960 PRINT:PRINTTAB(17)"ME"TAB(26)"YOU"
- 1970 PRINT"DISTANCE"TAB(15)PL(0,0)TAB(25)PL(1,0)
- 1980 S(6)=PL(0,0):S(7)=PL(1,0)
- 1990 PRINT"COMPLETE TRIP"
- 2000 IFS(6)=1000THENPRINTTAB(15)"[145] 400":S(6)=S(6)+400
- 2010 IFS(7)=1000THENPRINTTAB(25)"[145] 400":S(7)=S(7)+400
- 2020 PRINT"COUPS FOUREES"TAB(15)S(2)TAB(25)S(3)
- 2030 S(6)=S(6)+S(2):S(7)=S(7)+S(3)
- 2040 PRINT"SAFETIES"TAB(15)S(4)TAB(25)S(5)
- 2050 S(6)=S(6)+S(4):S(7)=S(7)+S(5)
- 2060 PRINT"SHUT OUT":IFPL(1,0)=0THENPRINTTAB(15)"[145] 500":S(6)=S(6)+500
- 2070 IFPL(0,0)=0THENPRINTTAB(25)"[145] 500":S(7)=S(7)+500
- 2080 PRINT:PRINT"ROUND"G"TOTAL"TAB(15)S(6)TAB(25)S(7)
- 2090 S(0)=S(0)+S(6):S(1)=S(1)+S(7)
- 2100 PRINT:PRINT"GRAND TOTAL"TAB(15)S(0)TAB(25)S(1):RETURN
- 2120 PRINT"";:FORI=1TOJ:PRINT:NEXTI:RETURN
- 2130 FORI=0TO800:NEXTI:RETURN
- 3000 PRINT"[166][157]";:I=FRE(0):PRINT" [157]";:RETURN
-